<?php


include_once($_SERVER["DOCUMENT_ROOT"]."/bolsa_trabajo/util/database.php");
include_once($_SERVER["DOCUMENT_ROOT"]."/bolsa_trabajo/dto/usuario_dto.php");
class UsuarioDTO
{


	public function __construct() {
		exit('Init function is not allowed');
	}


	public static function validateLoginEmpleadorActivo($login,$clave){
		$pdo = Database::connect();
		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		$sql = "SELECT id_empleador FROM tbl_empleador WHERE login= ? and clave = ? and estado = 'Activo'";
		$stmt = $pdo->prepare($sql);
		
		// login
		$stmt->bindParam(1, $login);
		
		// clave
		$stmt->bindParam(2, $clave);
		
		$q= $stmt->execute();
		
		$num = $stmt->rowCount();
		
		$resultado = 0;
		
		if($num > 0 ){
			// Usuario autenticado exitosamente hay que actualizar el ultimo inicio de sesion.
		
			while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
		
				$resultado = $row['id_empleador'];
		
				//Actualizamos ultimo acceso
		
				self::actualizarUltimoAcceso('tbl_empleador','id_empleador',$resultado);
		
			}
		
		}else{
			// Fallo autenticacion
			$resultado =0;
		}
			
		Database::disconnect();
		return $resultado;
	}

	public static function validateLoginEmpleador($login,$clave){
	
		$pdo = Database::connect();
		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		$sql = "SELECT id_empleador FROM tbl_empleador WHERE login= ? and clave = ?";
		$stmt = $pdo->prepare($sql);
	
		// login
		$stmt->bindParam(1, $login);
	
		// clave
		$stmt->bindParam(2, $clave);
	
		$q= $stmt->execute();
	
		$num = $stmt->rowCount();
	
		$resultado = 0;
	
		if($num > 0 ){
			// Usuario autenticado exitosamente hay que actualizar el ultimo inicio de sesion.
				
			while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
	
				$resultado = $row['id_empleador'];
	
				//Actualizamos ultimo acceso
	
				self::actualizarUltimoAcceso('tbl_empleador','id_empleador',$resultado);
	
			}
				
		}else{
			// Fallo autenticacion
			$resultado =0;
		}
			
		Database::disconnect();
		return $resultado;
	
	}
	
	
	
	public static function validateLoginAspirante($login,$clave){
		
		$pdo = Database::connect();
		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		$sql = "SELECT id_aspirante FROM tbl_aspirante WHERE login= ? and clave = md5(?)";
		$stmt = $pdo->prepare($sql);
		
		// login
		$stmt->bindParam(1, $login);
		
		// clave
		$stmt->bindParam(2, $clave);
		
		$q= $stmt->execute();
		
		$num = $stmt->rowCount();
		
		$resultado = 0;
		
		if($num > 0 ){
			// Usuario autenticado exitosamente hay que actualizar el ultimo inicio de sesion. 
			
			while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
				
				$resultado = $row['id_aspirante'];
				
				//Actualizamos ultimo acceso
				
				self::actualizarUltimoAcceso('tbl_aspirante','id_aspirante',$resultado);
				
			}
			
		}else{
			// Fallo autenticacion 
			$resultado =0;
		}
			
		Database::disconnect();
		return $resultado;

	}
	
	
	public static function actualizarUltimoAcceso($table,$keyName, $keyValue){
		$dt = new DateTime();
		$stringDate = $dt->format('Y-m-d H:i:s');
		
		$pdo = Database::connect();
		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		$sql = "UPDATE " . $table;
		$sql = $sql . " SET ultimo_acceso = ?" ;
		$sql  = $sql . " WHERE " . $keyName ." = ? " ;
		echo $sql;
		$stmt = $pdo->prepare($sql);		
		
		$stmt->bindParam(1, $stringDate);
		// keyVslue
		$stmt->bindParam(2, $keyValue);
		$stmt->execute();
		
		Database::disconnect();
		
	}
	///////////////////////////////////////////////////data modificada por klo////////////////////////////////
	public static function validateLoginAdmon($login,$clave){
		
		$pdo = Database::connect();
		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		$sql = "SELECT id_administrador FROM tbl_administrador WHERE login= ? and clave = md5(?) and estado = 'Activo'";
		$stmt = $pdo->prepare($sql);
		
		// login
		$stmt->bindParam(1, $login);
		
		// clave
		$stmt->bindParam(2, $clave);
		
		$q= $stmt->execute();
		
		$num = $stmt->rowCount();
		
		$resultado = 0;
		
		if($num > 0 ){
			// Usuario autenticado exitosamente hay que actualizar el ultimo inicio de sesion. 
			
			while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
				
				$resultado = $row['id_administrador'];
				
				//Actualizamos ultimo acceso
				
				self::actualizarUltimoAcceso('tbl_administrador','id_administrador',$resultado);
				
			}
			
		}else{
			// Fallo autenticacion 
			$resultado =0;
		}
			
		Database::disconnect();
		return $resultado;

	}
	////////////////////////////////////////////////////////////////////////data modificada por kalo//////////////////////
}

?>